package com.yuven.baselib.component.task;

import java.util.ArrayList;
import java.util.List;

import io.reactivex.disposables.Disposable;

/**
 * Rx任务记录表
 */
public class RxTaskRecorder implements IRxTaskRecorder {

    private List<Disposable> mDisposables;

    @Override
    public void subscribeSubject(Disposable disposable) {
        if (mDisposables == null) {
            mDisposables = new ArrayList<>(5);
        }
        if (!mDisposables.contains(disposable)) {
            mDisposables.add(disposable);
        }
    }

    @Override
    public void unSubscribeAllSubjects() {
        if (mDisposables != null && !mDisposables.isEmpty()) {
            for (Disposable disposable : mDisposables) {
                disposable.dispose();
            }
            mDisposables.clear();
        }
    }
}
